import Vue from 'vue'
import App from './App'
import share from "@/common/share.js"
import uView from "@/common/uview-ui";
import tools from '@/common/utils/util.js';
import {
	VueJsonp
} from 'vue-jsonp'
Vue.use(VueJsonp)

// import zPaging from 'components/z-paging/z-paging.vue';
// Vue.component('z-paging', zPaging)

import store from '@/store';
let vuexStore = require("@/store/$u.mixin.js");

Vue.mixin(vuexStore);

Vue.use(uView);
Vue.mixin(share)
import {
	API_URL,
	IMG_URL
} from 'env.js'

/**
 *  全局方法
 * @method msg 全局提示
 * @method load 全局loading
 * @method prePage 页面栈
 * @method add 加法精度计算
 * @method sub 减法精度计算
 * @method mul 乘法精度计算
 * @method div 除法精度计算
 * @method sys 系统配置
 * @method title 动态修改标题
 * @method numFormat 数字格式化
 * @method timeFormat 时间格式化
 * @method timeToDate 社交时间友好
 * @method guid 唯一值
 * @method to 打开链接navigateTo 
 * @method on 打开任意链接switchTab
 * @method back 返回上一级
 * @method phone 拨打电话
 * @method routerTo 跳转
 * @method conver 格式化kb
 * @method checkImgHttp 检测图片协议
 * @method chooseImage 图片处理-选择图片
 * @method uploadImage 图片处理-上传图片
 * @method previewImage  图片处理-预览图片
 * @method getImageInfo 图片处理-获取图片信息
 * @method throttle 节流
 * @method debounce 防抖
 * @method numberToChinese 将阿拉伯数字翻译成中文的大写数字   四仟五百六十二
 * @method checkPwd 检测密码强度
 * @method changeToChinese  将数字转换为大写金额   肆仟伍佰陆拾贰元整
 * @method checkStr 正则验证
 * 
 */


Vue.prototype.l = tools;
Vue.prototype.API = API_URL;
Vue.prototype.IMG = IMG_URL;
Vue.prototype.getQueryStringArgs = function(url) {
		let queryString = url.split('?')[1]; //取得查询字符串并去掉开头的问号
		let args = {};
		let queryStringToArray = queryString.length ? queryString.split('&') : [];

		let item = null;
		let key = null;
		let value = null;
		let len = queryStringToArray.length;
		for (let i = 0; i < len; i++) {
			// 去掉数组每一项的等号并转换为数组
			item = queryStringToArray[i].split('=');
			key = decodeURIComponent(item[0]); //对已编码的字符串进行解码,如果没有编码，则返回字符串的副本
			value = decodeURIComponent(item[1]);

			if (key.length) {
				//填入对象
				args[key] = value;
			}
		}
		return args;
	},
	Vue.prototype.sgnIn = async function(code) {
		let obj = {
			code,
			r: uni.getStorageSync('invite_code_encode'),
		};
		const res = await this.$u.post('public/login_', obj);
		if (!res.code) return;
		return res
	}
// 支付
var jweixin = require('jweixin-module');
var wx = require('weixin-js-sdk');
Vue.prototype.toPay = async function(e) {
	window.history.replaceState("","",window.location.pathname+ window.location.hash)
	console.log(11111111111);
	switch (e) {
		case 1:
			console.log(2222222222);
			var res = await this.$u.post('public/jsSdk', {
				url: window.location.href
			});
			jweixin.config({
				debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来，若要查看传入的参数，可以在pc端打开，参数信息会通过log打出，仅在pc端时才会打印。
				appId: res.data.appId, // 必填，公众号的唯一标识
				timestamp: res.data.timestamp, // 必填，生成签名的时间戳
				nonceStr: res.data.nonceStr, // 必填，生成签名的随机串
				signature: res.data.signature, // 必填，签名
				jsApiList: [
					'chooseWXPay', //支付
				],
			});
			
			break;
		case 2:
			console.log(333333333333);
			var res = await this.$u.post('public/jsSdk', {
				url: window.location.href
			});
			wx.config({
				debug: false, // 开启调试模式,调用的所有api的返回值会在客户端alert出来，若要查看传入的参数，可以在pc端打开，参数信息会通过log打出，仅在pc端时才会打印。
				appId: res.data.appId, // 必填，公众号的唯一标识
				timestamp: res.data.timestamp, // 必填，生成签名的时间戳
				nonceStr: res.data.nonceStr, // 必填，生成签名的随机串
				signature: res.data.signature, // 必填，签名
				jsApiList: [
					'updateTimelineShareData', //分享给好友
					'updateAppMessageShareData', //分享到朋友圈
				],
			});
			wx.checkJsApi({
				jsApiList: ['updateTimelineShareData',
					'updateAppMessageShareData'
				], // 需要检测的JS接口列表，所有JS接口列表见附录2,
				success: function(res) {
					return true
					console.log('res :>> ', res);
					// 以键值对的形式返回，可用的api值true，不可用为false
					// 如：{"checkResult":{"chooseImage":true},"errMsg":"checkJsApi:ok"}
				},
			});
			break;
		
	}




	return res
}


Vue.config.productionTip = false
App.mpType = 'app'

const app = new Vue({
	store,
	...App
})



/**
 * 请求拦截器
 */
import httpInterceptor from '@/common/http.interceptor.js'
Vue.use(httpInterceptor, app)

/**
 * 路由拦截器
 */
import router from '@/common/router.js'
Vue.use(router, app)
app.$mount()
